Skip to main content

Usage Examples

Example calls to the Euclid GraphQL API.

JavaScript (Apollo Client)

note
  • You can read more about the Apollo Client and its features in their docs.
  • You can find the all the GQL queries in the previous section

Apollo Client is a comprehensive and popular state management library that allows you to manage both local and remote data with GraphQL. It is designed to work seamlessly with your GraphQL server, providing a powerful and flexible way to query, cache, and manipulate data in your application.

const { ApolloClient, InMemoryCache, gql, HttpLink } = require('@apollo/client/core');
const fetch = require('cross-fetch');

// Initialize the Apollo Client and define the GQL endpoint
const client = new ApolloClient({
link: new HttpLink({ uri: 'https://testnet.api.euclidprotocol.com/graphql', fetch }),
cache: new InMemoryCache(),
});

// Define the GraphQL query
const query = gql`
query Chains($chainUId: String!, $type: String!) {
chains {
contracts(chainUId: $chainUId, type: $type) {
CreatedAt
UpdatedAt
ContractAddress
ChainUID
Type
}
}
}
`;

// Execute the query
client
.query({
query,
variables: { chainUId: 'nibiru', type: 'factory' },
})
.then((result) => {
// Print the JSON response
console.log(JSON.stringify(result.data, null, 2));
})
.catch((error) => console.error(error));

Output:

{
"chains": {
"__typename": "Chains",
"contracts": [
{
"__typename": "Contracts",
"CreatedAt": "0001-01-01T00:00:00Z",
"UpdatedAt": "0001-01-01T00:00:00Z",
"ContractAddress": "nibi16jzpxp0e8550c9aht6q9svcux30vtyyyyxv5w2l2djjra46580wswu40v9",
"ChainUID": "nibiru",
"Type": "factory"
}
]
}
}

TypeScript (Apollo)

import { ApolloClient, InMemoryCache, gql, HttpLink } from '@apollo/client/core';
import fetch from 'cross-fetch';

// Initialize the Apollo Client
const client = new ApolloClient({
link: new HttpLink({ uri: 'https://testnet.api.euclidprotocol.com/graphql', fetch }),
cache: new InMemoryCache(),
});

// Define the GraphQL query
const query = gql`
query Chains($chainUId: String!, $type: String!) {
chains {
contracts(chainUId: $chainUId, type: $type) {
CreatedAt
UpdatedAt
ContractAddress
ChainUID
Type
}
}
}
`;

// Execute the query
client.query({
query,
variables: { chainUId: 'ethereum', type: 'factory' },
})
.then(result => console.log(JSON.stringify(result.data, null, 2)))
.catch(error => console.error(error));

Output:

{
"chains": {
"__typename": "Chains",
"contracts": [
{
"__typename": "Contracts",
"CreatedAt": "0001-01-01T00:00:00Z",
"UpdatedAt": "0001-01-01T00:00:00Z",
"ContractAddress": "wasm1hrpna9v7vs3stzyd4z3xf00676kf78zpe2u5ksvljswn2vnjp3ys8c5wp9",
"ChainUID": "ethereum",
"Type": "factory"
}
]
}
}

Python

from gql import gql, Client
from gql.transport.requests import RequestsHTTPTransport

# Configure the transport
transport = RequestsHTTPTransport(
url='https://testnet.api.euclidprotocol.com/graphql',
use_json=True,
)

# Initialize the Apollo Client
client = Client(transport=transport, fetch_schema_from_transport=True)

# Define the GraphQL query
query = gql('''
query Chains($chainUId: String!, $type: String!) {
chains {
contracts(chainUId: $chainUId, type: $type) {
CreatedAt
UpdatedAt
ContractAddress
ChainUID
Type
}
}
}
''')

# Execute the query
variables = {"chainUId": "nibiru", "type": "factory"}
response = client.execute(query, variable_values=variables)
print(response)

Output:

{'chains': {'contracts': [
{'CreatedAt': '0001-01-01T00:00:00Z',
'UpdatedAt': '0001-01-01T00:00:00Z',
'ContractAddress': 'wasm1qg5ega6dykkxc307y25pecuufrjkxkaggkkxh7nad0vhyhtuhw3sq29c3m',
'ChainUID': 'osmosis',
'Type': 'factory'}]}}